Python Modbus CRC16 校验 其它CRC校验说明

您所在的位置:网站首页 crc16 多项式 Python Modbus CRC16 校验 其它CRC校验说明

Python Modbus CRC16 校验 其它CRC校验说明

2024-07-17 10:18| 来源: 网络整理| 查看: 265

本文校验使用crcmod库

使用前请安装: pip install crcmod

关于CRC16,mkCrcFun 中的设置参考下表

http://crcmod.sourceforge.net/crcmod.predefined.html#predefined-crc-algorithms

 

根据如上设置对应的mkCrcFun传入值,代码如下

from binascii import * from crcmod import * # CRC16-MODBUS def crc16Add(read): crc16 =crcmod.mkCrcFun(0x18005,rev=True,initCrc=0xFFFF,xorOut=0x0000) data = read.replace(" ","") readcrcout=hex(crc16(unhexlify(data))).upper() str_list = list(readcrcout) if len(str_list) < 6: str_list.insert(2, '0'*(6-len(str_list))) # 位数不足补0 crc_data = "".join(str_list) print(crc_data) read = read.strip()+' '+crc_data[4:]+' '+crc_data[2:4] print('CRC16校验:',crc_data[4:]+' '+crc_data[2:4]) print('增加Modbus CRC16校验:>>>',read) return read if __name__ == '__main__': crc16Add("01 03 08 00 01 00 01 00 01 00 01") crc16Add("ff")

运行结果如下:

0XD728 CRC16校验: 28 D7 增加Modbus CRC16校验:>>> 01 03 08 00 01 00 01 00 01 00 01 28 D7

0X00FF CRC16校验: FF 00 增加Modbus CRC16校验:>>> ff FF 00

以上.

 


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3